#ifndef _INTOBJ_H_CSEAPI_
#define _INTOBJ_H_CSEAPI_

class CSE_IMPEXP_IN TIntObj
{
private:
    TInt m_data;

public:
    TIntObj();
    TIntObj(const TIntObj& i);
    TIntObj(TInt i);
    ~TIntObj();

    TIntObj& operator=(const TIntObj& i);
    TIntObj& operator=(TInt i);

    operator TInt() const;

    TIntObj& operator++();         // prefix increment
    TIntObj& operator++(int);      // postfix increment
    TIntObj& operator--();         // prefix decrement
    TIntObj& operator--(int);      // postfix decrement

    void operator*=(TInt i);
    void operator/=(TInt i);
    void operator%=(TInt i);
    void operator+=(TInt i);
    void operator-=(TInt i);
    void operator<<=(TInt i);
    void operator>>=(TInt i);
    void operator&=(TInt i);
    void operator|=(TInt i);
    void operator^=(TInt i);
};

#define CseEmptyInt                TIntObj(0)

#endif
